1. The Field of the Invention
One problem with advanced editing tools and corresponding editors, however, is that they are not currently configured to extend the advanced editing features, such as validation, syntax coloring, and intellisense, to code segments that are written in different languages, even if they belong to the same file.
2. Background and Relevant Art
There are many different types of systems and environments that can be used by a computer programmer to develop code and create computer programs. These systems and environments are collectively referred to herein as Integrated Development Environments (IDE's). IDE's typically include graphical interfaces and utilize an editor having specialized tools and components for developing code in a particular language.
Many editors also provide advanced features that can make the programmer's work easier. These advanced features include such things as syntax coloring, intellisense, and validation. Syntax coloring generally involves coloring or otherwise altering the elements of a document to distinguish the various elements of the program or markup language syntax. Intellisense, also known as statement completion, occurs when the editor hints or is able to complete a partially typed expression. Validation occurs when the editor is able to detect invalid or obsolete constructs and without invoking the actual compiler. Each of these and other advanced features made available to existing editors are well known in the art.
One problem with advanced editing tools and corresponding editors, however, is that they are not currently configured to extend the advanced editing features, such as validation, syntax coloring, and intellisense, to code segments that are written in different languages, even if they belong to the same file. One reason for this is that the advanced tools work on the assumption that the programming file consists entirely of source code written in a single programming language. This, however, can be a problem when considering the current movement in computer programming. For instance, existing Microsoft ASP.NET technology currently allows Web pages to be developed that include both HTML markup as well as text in a compiler programming language such as Visual Basic or C#.
Currently, when a multilanguage page such as an ASP.NET Web page is opened in an existing IDE or programmer editor, the multilanguage document is treated as an HTML document, and such that the advanced editor features (e.g., syntax coloring, intellisense, validation) are only provided for the recognized HTML segments, while ignoring the segments written in Visual Basic, C# and any other programming languages, thereby depriving the programmer the functionality of the advanced editing tools for various code segments.
Yet another problem with editing multilanguage documents is that certain programming technologies, such as ASP.NET permit omissions in the source code, such as, for example, the omission of class and namespace declarations, but such omissions do not permit the source code to be processed by the language compiler. Because the editor being used to edit the document may not recognize the secondary languages and omissions present in the secondary languages, however, the omissions are not readily apparent and are not automatically fixed by the editor, thereby increasing the burden on the programmer to develop and process the code.
In summary, although many existing editors provide useful advanced editing features that can help a programmer develop code, the use of the advanced features are effectively limited to the application of a single programming language. Accordingly, in order to utilize the advanced features provided by the different editors for each of the corresponding languages of a multilanguage document, it is currently necessary for the programmer to manually open the document within each of the different editors that are to be utilized and explicitly interface with the different editors, thereby increasing the burden and time required to develop the code.